
    /*JavaSE基础：核心语法，C/S架构 早期软件 Client 客户端 Server服务器

    JavaMe：手机软件 （Android）

    JavaEE：软件应用开发 B/S架构 中期软件 Browser 浏览器 Server服务器



   JavaSE基础：基础语法 JavaOOP（面向对象） JavaAPI(核心语法)

1.程序入口【主方法】，输出语句

2.注释3种 程序员查看 注释比例：78%

单行注释          注释一行使用
/*


     /**///多行注释      // 注释多行使用

   // /***/文档注释      解释类名或者方法名使用

 /**3.变量：（Java是高级语言）   存数—运算【改数】

    语法：数据类型  标识符=字面量（死值）

    写法：存一个整数    int a=1；

            4.数据类型：Java有多少种数据类型？     2种√

            基础数据类型：8种             引用类型：等号右侧出现new**

     整数型 int（默认：常用） byte（偶尔用） short（不常用） long（银行）
            /*
            byte 字节 1KB=1024字节 作用：传输数据，IO流
            定义long数据 字面量加L/l
            long time+12345L;
             */
  /** 浮点型 double（默认：常用 双精度 8字节 取小数点后15位有效数）
          float（不常用     单精度 4字节 取小数点后6位有效数）
        知识点：反码 补码
    布尔型 boolean 用于逻辑判断 true flase
    字符型 char 存一个字符，使用单引号表示
5.数据联系转换【强制类型转换/显示类型转换|隐式类型转换】
   char->int->long->float->double(正方向:强制类型转换)
byte
   short<-int<-long<-float<-double(反方向:强制类型转换)
    //强制类型转换语法：小类型=（小类型）大类型
6.标识符：给Java变量、类、方法、项目、包起名
    //标识符命名规则
    /*
    ①可以由字母、数字、_和$组成
    ②首字母不允许使用数字
    ③Java大小写敏感
    ④驼峰命名【组合单词：ClassDemo】,除变量名：setAge,包名全小写
    ⑤Java关键字不允许作为标识字符进行使用，编辑器：有颜色
     */
    //7.运算符
    /**
    ①按照操作划分
    基础运算符：+ — * /   % 求模 ++  --
    前++：先运算后赋值
    后++:先赋值后运算
  int i=1;
  int j=i++ + i++ + i++；

  拼接运算符：字符串+基础数据类型
    ②按照条件划分:【进行比较操作 返回值：boolean】
    关系运算符：> < >= <= == !=
    逻辑运算符：&& 并且 短路与 有一个为假，结果为假，除非全对
              || 或者 短路或 有一个为真，结果为真，除非全错
              ！ 取反  打桩：程序启动，关闭状态 例如：flag!=true；
     ③根据结果划分
     赋值运算值：= += -= *= /= %=
     int a=a+1; 简写 int a+=1
8.流程控制语句
 ①顺序语句：按照从上至下执行
  ②分支语句：根据条件，选择执行某段代码
  if语句语法：
      if（逻辑条件：boolean）{
      语句块1；
      }else{
      语句块2
      }
  ③循环语句：
  while循环：死循环，循环次数不固定
  语法while（逻辑条件）{
  语句块
  }
  do while循环：特定需求：先执行一次然后进行判断
  语法：do{语句块}while（逻辑条件）；
  for循环：循环次数固定，作用：【遍历】迭代数据使用
  语法：for（初始值；条件判断；迭代值){语句块}
      for(int i=0;i<0;i++){}
      for循环执行顺序：①初始值②条件判断③语句块④迭代值
      循环可以套循环  常见：for套for、while(true){套for}
      实际开发for套for for套if
9.引用类型：等号右侧出现new 【数组】
数组：相同数据的集合
定义数组:数组类型 数组名=new 数组类型【数组长度】
int arr=new int[10];定义整数类型数组，空间长度10，下标0开始
声明并赋值：int[] arr={1,2,3}
声明并初始化：int[] arr=new int[]{1,2,3}
数组的迭代（遍历):输出数组内所有元素
普通for
增强for
工具类√

数组扩容：Java数组长度是固定的，数组对象创建，长度不能改变
        int[] arr=new int[4];长度四个不可改变
        Arrays工具类 提供创建数组副本的方法
     */
/**
10.函数：方法 method
封装某种特定功能 单模块调用
方法定义：修饰符 /-static：静态-/ 返回值/-空的，数据类型-/ 方法名(形参：16个)
        ①如果返回值是空的（void），直接输出语句
        ②数据类型，返回值 return 对应数据类型；

例子：①public static void method(int i,int j){
        System.out.println(“输出语句块”)；
       }
     ②public static String method(int i,int j)
        return“输出语句块”；
        }
方法注意：静态方法不可以套方法
修饰符：控制方法访问范围，控制类、控制构造器
       修饰符         本类        同包          子类         不同包
       public公共的   √           √            √            √
       protected保护的√           √            √            ×
       默认的         √           √            ×            ×
       private私有的  √           ×            ×            ×
 */
    /*
    ----------------------------------------基础语法over
     */

 //-----------------------------------------面向对象 JavaOOP 编写思路
/**
1.java面向对象方式进行开发：封装、继承、多台、抽象
2.创建对象：Java万物皆对象，对象皆可new  内存
2.1按照面向对象的方式给包取名：域名.公司名.项目名.模块名
                     例如：com.tedu.review.day02
                     www.baidu.com
包：区分类，不同的包可以存放相同的类【文件夹：包名小写】
3.JDK1.8直接决定java语法标准（工具包）
 JDK=JRE+JVM+其他
 JRE（运行环境）Java运行时候类库
特点:外部库--内置类库，创建项目存在
JVM（虚拟机）
编写xxx.java文件由虚拟机转编译xxx.class字节码文件
特点：跨平台xxx.class文件可以在任意操作系统
4.什么是类，了解内存创建过程【栈，堆，方法区】？
面向对象：类
类包括：属性|成员变量：功能：传输数据 写法：修饰符 数据类型 属性名；
       方法|成员方法：功能：实现逻辑 写法：函数写法一致
       句柄|构造器|构造方法:功能：初始化【赋值操作】 写法：修饰符（）{}
5.面向对象特征：封装---目的：实现信息隐藏，保护某些属性以及方法不被外界污染
【重要】JavaBean  实体类 要素：①属性被封装
                           ②设置set和get方法
                           ③默认初始化构造器【建议：调toString（）查看属性值】
                           ④【实体类--字节码--传输数据】实现接口IO流
6.内部类:外部类套内部类，外部类可以使用内部类的属性和方法
匿名内部类：①实现接口，实现抽象类   没有名字的类，作用于接口和抽象
            简化接口类和抽象类的代码【重点】
成员内部类：②又叫普通内部类，内部类相当于
静态内部类：③：直接访问、不可以使用外部类的普通属性【可以使用静态属性】
           静态内部类使用外部类的属性，属性一定是内部属性
方法内部类：④内部类定义在方法内，范围小，使用麻烦，考试专用
            修饰符必须是默认
掌握：以上内部编写方法【知道是什么内部类】，创建以上内部类的方法【创建内部类】
7.面向对象特性：继承  类与类  子类extends父类{}
①java只允许单继承，可以多继承 【一脉单传】
单继承：继承一个父亲
多层继承：依次进行继承
  爷爷extends祖宗{}
  父类extends爷爷{}
  子类extends父类{}
② 子类可以继承父类的属性和方法，父类存在私有属性十无法被继承
③继承构造器，子类继承父类：默认调用父类构造方法，在调用子类构造器
子类构造器默认存在super（）：调用父类的构造器
④重写或重载【重要】 针对类中方法，继承关系！区别：定义，使用
⑤继承关键字-->extends  类与类  super----使用方法一致
         【没有继承也可以使用】  this---使用方法一致
         final关键字：最终
8.面向对象的特性：多态  继承后实现方法互通 【普通类、抽象类、接口类】
数据类型：基本数据类型【存在强制类型转换】
引用类型：存在向下造型
向上造型：父类对象 引用=new 子类对象（）；【创建对象：常见】
   使用：普通类、抽象类、接口类，子类一定具备覆盖父类的方法【重写】
向下造型：①父类对象引用=new 子类对象（）；
        ②子类对象 引用=（子类对象）向上造型引用；
要求:识别创建对象【多态】、使用多态方法调用【覆盖】
关键字:instanceof 比较引用类型 对象引用=对象
判断一个对象是否是另外一个对象的实例(有没有关系:对象是否造型
使用:一般与if搭配，返回值类型boolean
9.面向对象特征：抽象--抽象类+抽象方法
抽象类的特点:<补充>
   抽象类=类：成员变量+构造器+成员方法
   成员变量：既可以是变量，也可以是常量
   构造方法：有
           用于子类访问父类的数据【父类默认初始化】
   成员方法：既可以是抽象的也可以是非抽象的

抽象方法的特性：
  A：抽象方法--目的：强制子类做的事情【子类一定重写】
  B:非抽象方法--目的：子类继承的事情，提高代码复用性【与普通父类一样】
抽象类的特点<补充2>
abstract不能和那些关键字共存【测试：抽象方法】
private 冲突
final 冲突
static 无意义

10.接口------【普通类>抽象类】>接口类：interface
*******JavaAPI高级----JDBC（java连接数据库）*****
高级程序员、架构师--会写接口---入门使用接口[使用注意事项]
功能:[理解:插排--提供功能，但是不会直接使用]
    提供功能，不会直接创建接口【匿名内部类/表达式】
接口类=全局常量+抽象方法
静态+最终=全局常量 定义: 修饰符 static final数据类型PI
                理解：通过类直接调用的属性

定义接口：修饰符 interface接口名{}
模拟接口案例：插排----Insert【接口】
            线----LINE=100 ----全局变量
            插口----jack（）----抽象方法
接口的实例化【创建对象】问题：
实现【子】类  【实现等同于继承】implements 继承 接口类
使用面向对象：多态 创建对象：接口 引用=new 实现类（）；
 接口使用注意：1.一个子类可以同时实现抽象类并且实现接口
语法：子类 extends 抽象类 implements 接口{}
             2.接口没有构造器,一个接口不能继承抽象类，接口可以继承接口
 接口可以继承多个接口【java只允许单继承，可以多实现】
 语法：子类 implements 接口1接口2接口3{}
 3.普通类，抽象类，接口类关系
                     关系             特点
 类与类：           继承关系         单继承，可以多层继承
                                  单继承，继承一个父类
                                  多层继承：从祖宗依次继承
 类与抽象类：        继承关系         单继承，不可以多继承
                                   多继承：继承多个父亲
 抽象类与抽象类:	   继承关系	        单继承，可以多层继承
 类与接口:	       实现关系	       单实现，可以多实现
                                    继承同时实现多个
 接口与接口:         继承关系	        单继承，也可以多层继承

作业：描述抽象类与接口区别
①定义方式：关键字不同 抽象类使用abstract 接口使用interface
 一个类只能继承一个抽象类。一个类可以实现多个接口。
②抽象类可以包含抽象方法和具体方法，需要在子类中被重写实现。
 接口只能包含抽象方法 。
③接口:允许多重继承，一个类可以实现多个接口。
 抽象类:只允许单一继承，一个类只能继承一个抽象类。
④成员类型:接口:可以有静态和默认方法，不能有实例变量
 抽象类:可以有构造方法、实例变量和具体方法。
⑤构造函数:
 抽象类:可以有构造函数，用于初始化抽象类的成员变量。
 接口:不能有构造函数，因为接口不能被实例化。
⑥抽象类:子类使用关键字"extends"来继承抽象类。
 接口:类使用关键字"implements"来实现接口。







11object类:java面向对象开发---万物皆对象，对象皆可new，所有对象根级对象
 顶级object超类
 ----------JavaOOP over
------------JavaAPI 查帮助文档  聊天室：公共聊天室 C/S架构软件
------------WEB(JS 网页=小程序)    B/S架构软件
*/

 public class 回顾重点知识点 {
}
